From 5b3fdf208eb9105a0b5925da7dd01df7fe81f641 Mon Sep 17 00:00:00 2001 From: oliskoli Date: Fri, 5 Sep 2008 19:07:18 +0000 Subject: [PATCH] xmlgeneric: Check input file for unicode format. --- xmlgeneric.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/xmlgeneric.c b/xmlgeneric.c index 8fcbfc3d8..6f82f2261 100644 --- a/xmlgeneric.c +++ b/xmlgeneric.c @@ -267,11 +267,17 @@ void xml_read(void) char buf[MY_CBUF]; while ((len = gbfread(buf, 1, sizeof(buf), ifd))) { - if (!XML_Parse(psr, buf, len, gbfeof(ifd))) { + char *str = buf; + if (ifd->unicode) { + str = cet_str_uni_to_utf8((short *)&buf, len >> 1); + len = strlen(str); + } + if (!XML_Parse(psr, str, len, gbfeof(ifd))) { fatal(MYNAME ":Parse error at %d: %s\n", (int) XML_GetCurrentLineNumber(psr), XML_ErrorString(XML_GetErrorCode(psr))); } + if (str != buf) xfree(str); } XML_ParserFree(psr); @@ -309,6 +315,7 @@ xml_init0(const char *fname, xg_tag_mapping *tbl, const char *encoding, { if (fname) { ifd = gbfopen(fname, "r", MYNAME); + (void) gbfunicode(ifd); if (offset) { gbfseek(ifd, offset, SEEK_SET); } -- 2.30.2